/**
* Copyright @ 2023 iAuto (Shanghai) Co., Ltd.
* All Rights Reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are NOT permitted except as agreed by
* iAuto (Shanghai) Co., Ltd.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*/



// 0-上架审核中，1-下架审核中，2-上架成功，3-上架失败，4-下架成功，5-下架失败
export type IAuditStatus = 0 | 1 | 2 | 3 | 4 | 5;
// 管理员1-同意 0-不同意
export type IAuditResult = 0 | 1;
// 场景来源（0-原创，1-商城，2-预制）
export type ISourceType = 0 | 1 | 2;
// 是否是官方场景，0-否,1-是
export type IOfficialScene = 0 | 1;
// 手机端是否可执行，0-否,1-是
export type IExecutedOnPhone = 0 | 1;
// 车机端是否二次确认，0-否,1-是
export type IDoubleCheckOnVehicle = 0 | 1;

export type ISceneAuditItem = {
  //  必须 场景ID
  sceneUuid: string;
  // 必须 场景履历Uid
  sceneRecordUuid: string;
  // 必须 场景分类名称
  categoryName?: string;
  // 必须 车系名称
  seriesName: string;
  // 必须 车型名称
  modelName: string;
  // 必须 品牌名称
  brandName: string;
  // 必须 场景名称
  name: string;
  // 必须 0-上架审核中，1-下架审核中，2-上架成功，3-上架失败，4-下架成功，5-下架失败
  auditStatus: IAuditStatus;
  // 非必须 失败原因
  rejectReason: string;
  // 必须 申请发布时间
  applyTime: string;

  sceneFileUuid: string;
  serviceMatrixVersion: string;
  seriesCode: string;
  modelCode: string;
  brandCode: string;
  releaseType: string;
  cronReleaseTime: string;
};

// 场景发布履历分页查询
export type ISceneAuditList = ISceneAuditItem[];

// 场景发布履历详情接口
export type ISceneAuditDetail = {
  // 必须 场景ID
  sceneUuid: string;
  // 必须 场景履历Uid
  sceneRecordUuid: string;
  // 必须 场景分类名称
  categoryName: string;
  // 必须 场景分类UUID
  categoryUuid: string;
  // 必须 车系名称
  seriesName: string;
  // 必须 车系编码
  seriesCode: string;
  // 必须 车型名称
  modelName: string;
  // 必须 车型编码
  modelCode: string;
  // 必须 品牌名称
  brandName: string;
  // 必须 品牌编码
  brandCode: string;
  // 必须 场景名称
  name: string;
  // 必须 场景图标Url
  iconUrl: string;
  // 必须 场景背景图Url
  backgroundPicUrl: string;
  // 必须 场景文件UUID
  sceneFileUuid: string;
  // 非必须 场景描述
  description?: string;
  // 必须 是否是官方场景，0-否,1-是
  executedOnPhone: IExecutedOnPhone;
  // 必须 车机端是否二次确认，0-否,1-是
  doubleCheckOnVehicle: IDoubleCheckOnVehicle;
  // 必须 是否是官方场景，0-否,1-是
  officialScene: IOfficialScene;
  // 必须 场景来源0（默认）-原创，1-商城，2-预制
  sourceType: ISourceType;
  //  非必须 开发者id
  developerId?: string;
  //  非必须 开发者名字
  developerName?: string;
  // 必须 版本
  version: string;
  // 必须 0-上架审核中，1-下架审核中，2-上架成功，3-上架失败，4-下架成功，5-下架失败
  auditStatus?: IAuditStatus;
  // 非必须 失败原因
  rejectReason?: string;
  // 必须 申请发布时间
  applyTime: string;
  // VIN
  vin:string;
};

// 场景发布履历分页查询参数
export type ISceneAuditListParams = {
  auditResult: IAuditResult; // 管理员1-同意 0-不同意
  rejectReason?: string; // 审核不同意原因
  auditStatus: IAuditStatus; // 审核流程：1-上架审核 2-下架审核
};

// 场景发布履历分页查询参数
export type IScenesRecordParams = {
  categoryName: string; // 场景分类名称
  categoryUuid: string; // 场景分类UUID
};

// 场景发布履历分页查询参数
export type ICategoryItem = {
  // 唯一标识
  uuid: string;
  // 分类名称
  name: string
};

// 场景测试下发参数
export type IScenesTestReleaseParams = {
  // 必须 场景履历Uid
  sceneRecordUuid: string;
  // vin list
  vinList: string[]
};
